# -*- coding: utf-8 -*-
__author__ = 'lztkdr'
__date__ = '2020/4/11 20:22'

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Pycharm输出窗口有省略号，数据显示不全解决方法
pd.set_option('display.max_rows', 10)
pd.set_option('display.max_columns', 200)
pd.set_option('display.width', 1000)

# 如果要显示中文标题和坐标表示，需要添加以下两行代码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

print('pd.__version__:', pd.__version__)

print('============================================================================================================')

"""
	resample 重采样
	
	重采样：指的是将时间序列从一个频率转化为另一个频率进行处理的过程，将高频率数据转化为低频率数据为降采样，低频率转化为高频率为升采样

	pandas提供了一个resample的方法来帮助我们实现频率转化

	索引是时间类型，则可以调用resample 重采样。
	
	重新采样时间序列数据。

	频率转换和时间序列重采样的便捷方法。对象必须具有类似datetime的索引（DatetimeIndex， PeriodIndex或TimedeltaIndex），或将类似datetime的值传递给on或level关键字。
"""

df = pd.DataFrame(np.random.uniform(10, 50, (100, 1)), index=pd.date_range('20170101', periods=100))

print(df)
print('================================================')
res = df.resample('M')
print(type(res))

import pyutil


drs = dir(res)
for dr in drs:
	if not dr.startswith('_'):
		print(dr)

print('================================================================================================')
df = pd.read_csv("./911.csv")

df["timeStamp"] = pd.to_datetime(df["timeStamp"])

df.set_index("timeStamp",inplace=True)
print(df.head())

print('================================================')
#统计出911数据中不同月份电话次数的
count_by_month = df.resample("M").count()["title"]
print(count_by_month)

print('================================================')
#画图
_x = count_by_month.index
_y = count_by_month.values

# for i in _x:
#     print(dir(i))
#     break
_x = [i.strftime("%Y%m%d") for i in _x]

plt.figure(figsize=(20,8),dpi=80)

plt.plot(range(len(_x)),_y)

plt.xticks(range(len(_x)),_x,rotation=45)

plt.show()


